
local label = lv.label_create( lv.scr_act() );

lv.label_set_text( label, "Hello animations!" );

lv.obj_set_pos( label, 100, 10 );


local sw = lv.switch_create( lv.scr_act() );

lv.obj_center( sw );

lv.obj_add_state( sw, lv.LV_STATE_CHECKED );

lv.obj_add_event_cb( sw, lv.LV_EVENT_VALUE_CHANGED, function( e )

	if lv.obj_has_state( sw, lv.LV_STATE_CHECKED ) then

		a = lv.create_anim()

		lv.anim_set_var( a, label );

		lv.anim_set_values( a, lv.obj_get_x( label ), 100 );

		lv.anim_set_time( a, 500 );

		lv.anim_set_exec_cb( a, function( x, v )

			lv.obj_set_x( x, v );
		end )

		lv.anim_set_path_cb( a, lv.anim_path_overshoot );

		lv.anim_start( a );
	else

		a = lv.create_anim()

		lv.anim_set_var( a, label );

		lv.anim_set_values( a, lv.obj_get_x( label ), -lv.obj_get_width( label ) );

		lv.anim_set_time( a, 500 );

		lv.anim_set_exec_cb( a, function( x, v )

			lv.obj_set_x( x, v );
		end );

		lv.anim_set_path_cb( a, lv.anim_path_ease_in );

		lv.anim_start( a );
	end
end )
